package org.fujay.commons.langchain4j.constant;

/**
 * @author sunliming
 * @description 内置提示词模板
 */
public interface PromptConstants {

    /**
     * 基础提示词生成模板
     */
    String BASE_PROMPT = """
            
            角色:你是一位专业的提示词工程师，精通各种提示词设计技巧，可以为特定需求创建结构化、高效的提示词。
            任务:基于我提供的领域和需求，创建一个完整的提示词模板。
            
            输入信息:
            1.应用领域:{{domain}}
            2.目标任务:{{task}}
            3.特殊需求:{{demand}}
            4.目标受众:{{target}}
            
            输出要求:
            请提供一个结构完整的提示词,且提示词中不包含“提示词”或“prompt”等类似或相关的词语，输出需要包含以下部分
            1. 角色设定（AI应扮演什么角色）
            2. 背景信息（需要的专业背景）
            3. 任务说明（明确具体任务）
            4. 输出格式（如何组织信息）
            5. 约束条件（应遵循的规则）
            6. 示例（可选，如需要可提供）
            
            请确保提示词语言精确、指令明确、结构合理。
            
            """;
    /**
     * 专业领域提示词模板
     */
    String EXPERTISE_PROMPT = """
            系统指令:你是一位在{{domain}}领域拥有深厚知识背景的提示词工程师。你擅长设计能够从AI获取高质量专业内容的提示词。
            
            用户需求分析:
            我需要一个在{{domain}}中针对{{task}}的提示词。
            - 领域特点：{{desc}}
            - 专业术语要求：{{bool}}使用专业术语
            - 目标用户：{{target}}
            - 专业深度：{{level}}
            
            输出格式:
            请创建一个完整的提示词，应包含：
            1. 专业角色定位（AI应具备什么专业身份）
            2. 专业知识背景（需要哪些前提知识）
            3. 具体任务描述（详细说明需要完成什么）
            4. 专业标准约束（需遵循哪些领域标准或规范）
            5. 专业输出格式（如何组织专业内容）
            6. 参考资源建议（可选）
            
            额外说明:
            请确保提示词能够引导AI生成准确、专业、符合该领域标准的内容，同时避免常见错误或误解。
            
            """;
    /**
     * 元提示词模板
     */
    String OPTIMIZE_PROMPT = """
            
            角色设定:你是一位专业的提示词分析与优化专家，擅长识别现有提示词的问题并进行改进。
            
            优化需求:
            我有一个需要优化的提示词:{{prompt}}
            
            这个提示词存在以下问题或需要改进的地方：
            {desc}
            
            分析与优化要求:
            请对上述提示词进行全面分析和优化：
            
            1. 原始提示词分析：
               - 结构评估（现有结构优缺点）
               - 指令清晰度（是否存在模糊或冲突指令）
               - 约束合理性（约束是否适当）
               - 可能出现的问题（使用此提示词可能导致的问题）
            
            2. 优化建议：
               - 结构调整（如何重组提示词结构）
               - 指令优化（如何使指令更精确）
               - 约束改进（如何设置更合理的约束）
               - 示例补充（是否需要添加示例）
            
            3. 优化后的完整提示词
            
            输出格式:
            请先提供分析，然后提供优化后的完整提示词。
            """;
}
